package org.pf.base
{
	import flash.events.EventDispatcher;
	import org.pf.base.PFBlock;
	import org.pf.base.pfBlocks.PFCache;
	import org.pf.interfaces.IPFCache;
	import org.pf.interfaces.IPFCleaner;
	import org.pf.interfaces.IPFPrince;
	import org.pf.interfaces.IPFSystemCache;
	import org.pf.PFPrince;
	import org.pf.interfaces.IPFBlock;
	import org.pf.base.pfBlocks.PFCleaner;
	
	public class PFBlock extends EventDispatcher implements IPFBlock
	{
		public static const STATE_BLOCK:String = "stateBlock";
		public static const CONTROLLER_BLOCK:String = "controllerBlock";
		public static const PARTICLE_BLOCK:String = "particleBlock";
		public static const CACHE_BLOCK:String = "cacheBlock";
		public static const UPDATER_BLOCK:String = "updaterBlock";
		public static const LEVEL_BLOCK:String = "levelBlock";
		public static const LEVEL_CONTROLLER_BLOCK:String = "levelControllerBlock";
		
		private var m_type:String;
		
		private var m_name:String;
		
		private var m_prince:IPFPrince;
		private var m_cleaner:IPFCleaner;
		private var m_systemCache:IPFSystemCache;
		
		public function PFBlock(blockType:String)
		{
			m_type = blockType;
			
			m_prince = PFPrince.getPrince();
			m_cleaner = PFPrince.getPrince().get_Cleaner();
			m_systemCache = PFPrince.getPrince().get_SystemCache();
		}
		
		public function get type():String
		{
			return m_type;
		}
		
		public function get _name():String
		{
			return m_name;
		}
		
		public function get _prince():IPFPrince
		{
			return m_prince as IPFPrince;
		}
		
		public function get _cleaner():IPFCleaner
		{
			return m_cleaner as IPFCleaner;
		}
		
		public function set _name(value:String):void
		{
			m_name = value;
		}
		
		public function get systemCache():IPFSystemCache
		{
			return m_systemCache;
		}
		
		public function deactivate():void
		{
		
		}
		
		public function activate():void
		{
		
		}
		
		public function safe_deactivate():void
		{
		
		}
	
	}

}